Technical Q&A QA1128
QDSwapPort


Q: QDSwapPort ÇΔÇÕâΩÇ≈Ç∑Ç©ÅHÇ‹ÇΩÅADZÇÍÇégǧóùóRÇÕâΩÇ≈Ç∑Ç©ÅH

A: Mac OS X ÇÊÇËLJëOÇÕÅAÉJÉåÉìÉgÉ|Å[ÉgÇÃê›íËÇÕÅAä»íPÇ»ÉÅÉÇÉäÉAÉNÉZÉXÇïKóvÇΔÇ∑ÇÈÇæÇØÇÃà¿âøÇ»èàóùÇ≈ǵÇΩÅBMac OS X Ç≈ÇÕÅAÉJÉåÉìÉgÉ|Å[ÉgÇÃê›íËÇ…ÇÕèÌÇ…ä÷êîåƒÇ—èoǵǙïKóvÇ≈džÇËÅAèÍçáÇ…ÇÊǡǃÇÕÉXÉåÉbÉhÇ≤ÇΔÇ…ÉOÉçÅ[ÉoÉãïœêîÇ…ÉAÉNÉZÉXÇ∑ÇÈïKóvLJdžÇÈÇΩÇflÅAÉ|Å[ÉgÇÃïœçXDžǩǩÇÈÉRÉXÉgÇÕÅAñ≥éãÇ≈Ç´Ç»Ç≠ǻǡǃǢNjÇ∑ÅBè]óàÇÃï˚ñ@Ç…ÇÊÇÈÉ|Å[Égê›íËÇÃó·Ç…ǬǢǃÇÕÅAÉäÉXÉg 1 ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB


//    QDSwapPort ÇégÇÌǻǢÉ|Å[ÉgÇÃïœçX
CGrafPtr savePort;
GetPort( &savePort );
SetPort( newPort );

//  DZDZÇ≈êVǵǢÉ|Å[ÉgÇê›íËÇ∑ÇÈ

SetPort( savePort );

ÉäÉXÉg 1. è]óàÇÃå`éÆÇ…ÇÊÇÈ QuickDraw ÇÃÉ|Å[ÉgÇÃëÄçÏ

Mac OS X 10.1 Ç≈ì±ì¸Ç≥ÇÍÇΩ QDSwapPort ÇÕÅAå√Ç¢É|Å[ÉgÇãLò^ǵÅAÅiïKóvÇ…âûÇ∂ǃÅjêVǵǢÉ|Å[ÉgÇ…ïœçXǵÅAÉ|Å[ÉgÇ™é¿ç€Ç…ïœçXÇ≥ÇÍÇΩǩǫǧǩÇï‘ǵNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅAnewPort ÇΔ savePort Ç™ìØÇ∂èÍçáÇÕÅAó]ï™Ç» SetPort ÇÃåƒÇ—èoǵÇè»Ç¢Çƒà»ëOÇÃÉ|Å[ÉgÇâÒïúÇ≈Ç´Ç‹Ç∑ÅBÇ‹ÇΩÅAQDSwapPort Ç 1 âÒåƒÇ—èoÇ∑ǟǧǙÅADZÇÍÇ™ì±ì¸Ç≥ÇÍÇÈëOÇÃåƒÇ—èoǵÇÃÉyÉAÅiGetPort ÇΔ SetPortÅjÇégǧÇÊÇËLJèÌÇ…ë¨Ç≠èàóùÇ≈Ç´Ç‹Ç∑ÅB

à»ëOÇÃÉ|Å[ÉgÇãCÇ…ÇµÇ»ÇØÇÍÇŒÅAëÊ 2 ÉpÉâÉÅÉ^ÇΔǵǃ NULL ÇìnÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

êÑèßÇ≥ÇÍÇÈégópñ@DžǬǢǃÇÕÅAÉäÉXÉg 2 ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB


//    QDSwapPort ÇégÇ¡ÇΩÉ|Å[ÉgÇÃïœçX
CGrafPtr savePort;
Boolean portChanged = QDSwapPort(newPort, &savePort);

//  DZDZÇ≈êVǵǢÉ|Å[ÉgÇê›íËÇ∑ÇÈ

if (portChanged)
{
    QDSwapPort(savePort, NULL);
}

ÉäÉXÉg 2. QDSwapPort ÇégÇ¡ÇΩÉ|Å[ÉgÇÃëÄçÏ




[2002 îN 11 åé 6 ì˙]